🤔
二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。然而,没有足够的信息来区分左结点和右结点。如果不考虑连通性,允许图中有多个连通分量,这样的结构叫做森林。
- 下面我们通过python来实现二叉树及其遍历
构建二叉树
1
2
3
4
5 class Node:
def __init__(self, value = None, left = None, right = None):
self.value = value
self.left = left
self.right = right
遍历二叉树
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 def PreTraverse(root):
'''
前序遍历
:param root:
:return:
'''
if root == None:
return
print(root.value)
PreTraverse(root.left)
PreTraverse(root.right)
def MidTraverse(root):
'''
中序遍历
:param root:
:return:
'''
if root == None:
return
MidTraverse(root.left)
print(root.value)
MidTraverse(root.right)
def AfterTraverse(root):
'''
后序遍历
:param root:
:return:
'''
if root == None:
return
AfterTraverse(root.left)
AfterTraverse(root.right)
print(root.value)